﻿/******************************************************************************
 * Copyright 2020-xxxx xxx Co., Ltd.
 * All right reserved. See COPYRIGHT for detailed Information.
 *
 * @projectName   aaa
 * @file          xstaticchart_p.h
 * @brief         XXXX Function
 *
 * @author        Feng<2859352492@qq.com>
 * @date          2022/03/09 11:21:18
 * @history
 *****************************************************************************/

#ifndef XSTATICCHART_P_H
#define XSTATICCHART_P_H

#include "xstaticchart.h"
#include "objlib.h"
#include "basedata.h"

QT_BEGIN_NAMESPACE

class XStaticChartPrivate
{
public:
    XStaticChartPrivate();
    ~XStaticChartPrivate();

    /* Apperance Property */
    Array xArray;                          //x轴数组
    Array xRangeArray;                     //x轴范围数组
    Array yRangeArray;                     //y轴范围数组
    ChartTickLabelType tickLabelType;      //坐标轴标签类型

    /* Data variable */
    QCPRange xRange;                       //x轴范围
    QVector<double> x;                     //横坐标
    QCPRange yRange;                       //y轴范围
    QVector<double> y;                     //纵坐标
    QVector<QString> tickLabels;           //自定义坐标标签列表

    /* Parameters */
    int tickLabelsCount;       //自定义标签数量

//    enum ValueTextShower{      //值文字显示者
//        PointLine,             //点线对象显示
//        Bars                   //柱状对象显示
//    }valueTextShower;

    //合法性判断
    template<typename T>
    bool ArrayJudge(Array &array, int countJudge = 0);
    QString typeName = "";

    //转换函数
    template<typename T>
    void ArrayToQCPRange(Array &array, QCPRange &range);

    template<typename T1, typename T2>
    QVector<T2> ArrayToQVector(Array &array);
};

QT_END_NAMESPACE

#endif // XSTATICCHART_P_H
